import { ItemCategory } from './constants';

export type AmmoType = '9mm' | '556' | '762' | '12g' | 'sniper';

export interface AttachmentSet {
  spreadBonus: number; // 0-1, positive reduces spread
  recoilBonus: number;
  laserAssist: boolean;
  penetrationBonus: number;
  critBonus: number;
}

export interface WeaponStats {
  id: string;
  name: string;
  ammoType: AmmoType;
  roundsPerSecond: number;
  baseDamage: number;
  effectiveRange: number;
  spread: number;
  pellets: number;
  pierce: number;
  critChance: number;
  critMultiplier: number;
  magazineSize: number;
  reloadTime: number;
  attachments: AttachmentSet;
}

export interface HitResult {
  dstId: string;
  dmg: number;
  isCrit: boolean;
  pierceLeft: number;
}

export interface AmmoDefinition {
  id: AmmoType;
  category: ItemCategory;
  stack: number;
  magazineBase: number;
}

